package com.fgl;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import com.mongodb.util.JSON;
import org.bson.Document;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description
 * @Author fuguangli businessfgl@163.com
 * @Create date:    2017/9/14
 */
public class MongoDbJdbc {
    public static void main(String[] args) {
        MongoClient client = new MongoClient("127.0.0.1", 27017);

        /*get database*/
        MongoDatabase database = client.getDatabase("fgl");
        System.out.println();

        /*create a collection*/
        database.createCollection("java");

        /*get a collection*/
        MongoCollection<Document> collection = database.getCollection("java");

        /*create a document*/
        final Document document = new Document();
        document.append("title", "java");
        document.append("delete", "delete");

        /*build a collection of document*/
        List<Document> docs = new ArrayList<Document>() {{
            add(document);
        }};

        /*insert  documents*/
        collection.insertMany(docs);

        /*retrieve all documents */
        FindIterable<Document> iterable = collection.find();
        MongoCursor<Document> cursor = iterable.iterator();
        while (cursor.hasNext()){
            System.out.println(cursor.next());
        }

        /*update a document*/
        collection.updateMany(Filters.eq("title","java"),new Document("$set",new Document("title","java java")));

        /*delete a document*/
        collection.deleteMany(Filters.eq("delete","delete"));






        /*mongo有密码是时的链接代码*/
        //连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
        //ServerAddress()两个参数分别为 服务器地址 和 端口
       /* ServerAddress serverAddress = new ServerAddress("localhost",27017);
        List<ServerAddress> addrs = new ArrayList<ServerAddress>();
        addrs.add(serverAddress);

        //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
        MongoCredential credential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
        List<MongoCredential> credentials = new ArrayList<MongoCredential>();
        credentials.add(credential);

        //通过连接认证获取MongoDB连接
        MongoClient mongoClient = new MongoClient(addrs,credentials);

        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("databaseName");
        System.out.println("Connect to database successfully");*/
    }
}
